package com.ffcc.fitness.websocket.mapper;

import com.ffcc.fitness.websocket.pojo.Message;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 消息Mapper接口
 */
@Mapper
public interface MessageMapper {
    
    /**
     * 插入新消息
     */
    int insert(Message message);
    
    /**
     * 查询两用户间的聊天记录
     */
    List<Message> getChatHistory(@Param("user1Id") Long user1Id, 
                                @Param("user2Id") Long user2Id, 
                                @Param("limit") Integer limit);
    
    /**
     * 标记消息为已读
     */
    int markAsRead(@Param("fromId") Long fromId, @Param("toId") Long toId);
    
    /**
     * 获取用户的未读消息数
     */
    int getUnreadCount(@Param("toId") Long toId);
    
    /**
     * 获取用户与某人的未读消息数
     */
    int getUnreadCountWith(@Param("fromId") Long fromId, @Param("toId") Long toId);
}
